Method of generating optimum skew corners for a compact device model

ABSTRACT

A method of generating optimum skew corner models for a compact device model. A skew corner model refers to a fast or a slow device model, or even a fast-NFET slow-PFET model in which there is no continuos distribution for compact device model parameters. A model parameter&#39;s values are set so that the model will reproduce the fast or slow corner results of several circuits performance targets, and wherein each model parameter&#39;s value in the skew corner library is within the tolerance range of that model parameters.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to a method of generating optimum skew corners for a compact device model, and more particularly pertains to method of generating a fast or slow skew corner model, or a fast-NFET, slow-PFET skew corner model, in which each of the parameters of compact device model is fixed to a particular value within its process distribution. A model parameter's values are set so that the model will reproduce the fast or slow corner results of several circuits performance targets, and wherein each model parameter's value in the skew corner library is within the tolerance range of that model parameter.

2. Discussion of the Prior Art

A compact device model in the semiconductor industry includes one or more of the following items: an FET device model (BSIM3, BSIM4, BSIMPD, Gummel-Poon, VBIC, etc.), models on passive devices (resistors, capacitors, inductors, etc.), and interconnect models. The compact model in the semiconductor industry plays an important role in linking a semiconductor device/chip manufacturer with circuit design companies or design teams. Circuit designers use a compact device model in a circuit simulator, such as IBM'S AS/X simulator, PowerSpice simulator, vendor's HSPICE simulator, SmartSpice simulator, Spectre simulator, etc. A typical compact model contains both nominal values of various model parameters as well as their standard deviations (i.e., 1-σ tolerance).

For an FET model, typical model parameters include TOX (oxide thickness), ΔL (difference between FET drawn design length and actual length), ΔW (difference between FET drawn design width and actual width), V_(T) (threshold voltage), mobility, Cj (junction capacitance), etc. For a passive device such as a resistor, typical model parameters include sheet resistance of the resistor, its temperature coefficients, and the resistor's length and width, etc. For an interconnect model, typical model parameters include wire length, wire width, wire thickness, wire-to-wire space in the same metal level, vertical distance to a metal level above, and the vertical distance to a metal level below or to a substrate/N-well/diffusion region below it, etc.

With such nominal and tolerance values of model parameters, a circuit designer can do Monte Carlo simulations to obtain both nominal performance of a circuit and n-σ (e.g., 1-σ, 3-σ, or 6-σ, etc.) worst-case performance or n-σ best-case performance of the circuit. However, a practical limitation with the Monte Carlo simulation method is the huge CPU time required. The reason is that a single circuit simulation may take hours of intensive CPU time, and many times of circuit simulation are required to obtain a meaningful statistical sample.

To save circuit simulation time, for circuit designers, it is often desirable to have a worst-case (best-case) skew-corner library for simulating the worst-case (best-case) behavior of the circuit. This saves a lot of circuit simulation time, since only a single simulation is needed to obtain the worst-case circuit performance number with the use of a worst-case skew-corner library.

A commonly used skew corner method is to shift all model parameters together, i.e., shift them in the same percentage with respect to each model parameter's standard deviation. As explained hereinbelow, such a method usually does not produce an optimum skew corner for a single performance target. For multiple performance targets, such a single skew corner typically will not reproduce the worst case (or best case) performance results of several circuits (e.g., FET currents, ring oscillator periods and NAND gate delay, or worst product of RC and worst R in an interconnect model) simultaneously.

In other words, a problem on skew corner is:

Given that the nominal and tolerance values of all model parameters in a compact device model have been determined, how to provide a fast skew model or a slow skew model in which there is no distribution for any compact model parameters. Specifically, how to set a model parameter's values so that the model will reproduce the fast or slow corner results of several circuits performance targets.

SUMMARY OF THE INVENTION

Accordingly, it is a primary object of the present invention to provide a method of generating optimum skew corners for a compact device model.

A further object of the subject invention is the provision of a method of generating a fast or slow skew corner model in which there is no distribution for a compact device parameters. A model parameter's values are set so that the model will reproduce the fast or slow corner results of several circuits performance targets, and wherein each model parameter's value in the skew corner library is within the tolerance range of that model parameter.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing objects and advantages of the present invention for a method of generating optimum skew corners for a compact device model may be more readily understood by one skilled in the art with reference being had to the following detailed description of several embodiments thereof, taken in conjunction with the accompanying drawings wherein like elements are designated by identical reference numerals throughout the several views, and in which:

FIG. 1 illustrates that the cross point C of the two straight lines plotted satisfies 0<cos φ<u₁(C)<cos θ<1 and 0<sin θ<u₂(C)<sin φ<1.

FIG. 2. illustrates that the least-squares solution point S of the three straight lines satisfies 0<u₁(S), u₂(S)<1.

FIG. 3 illustrates an example of N=2 (two targets) and M=2 (two parameters), wherein opposite signs between a₁₂ and a₂₂ leads to a solution |u₁(C)|>1.

FIG. 4 illustrates an example of N=2 (two targets) and M=2 (two parameters), wherein opposite signs between a₁₁ and a₂₁ and opposite signs between a₁₂ and a₂₂ leads to a solution |u₁(C)|>1 and |u₂(C)|>1.

FIG. 5 illustrates several skew corners for the saturation current of a pair of NFET and PFET devices.

FIG. 6 illustrates an example of the skew corner of a fast NFET and slow PFET.

DETAILED DESCRIPTION OF THE DRAWINGS

The following provides a solution to the problem discussed above, based on a first-order approximation. It should be noted that similar solutions based on a second-order approximation can also be provided. But they are quite lengthy, and are omitted here. The best way to provide a second-order solution is in the form of computer software. The first-order solution can help us understand the methodology used. Also, the first-order solution will serve as the initial solution to a set of non-linear (say, quadratic) equations.

In the original coordinate system. For a given compact device model and given nominal values X₁₀, X₂₀, . . . , X_(M0) of M compact model parameters X₁, X₂, . . . , X_(M), obtain a first-order approximation for a performance target around the above given nominal operating point. Assume that there are N such performance targets, and denote the ith target by F_(j). The first-order Taylor series expansion for the function F_(j)(X₁, X₂, . . . , X_(M)) is $\begin{matrix} {{F_{i}\left( {x_{1},\quad x_{2\quad},\quad\ldots{\quad,}\quad x_{M}} \right)} = {{F_{i0} + {\sum\limits_{j = 1}^{M}\quad{{a_{ij}\left( {x_{j} - x_{j0}} \right)},\quad i}}} = {1,\quad 2\quad,\quad\ldots\quad,\quad N,}}} & (1) \end{matrix}$ where the coefficients a_(ij) (j=1, 2, . . . , M) can be obtained either from expanding the model equations (say, equations for FET current or equations for a resistor's resistance) at the operating point (X₁₀, X₂₀, . . . , X_(M0)) directly, or from evaluating the model at (X₁₀, X₂₀, . . . , X_(j0)+nσ_(j), . . . , X_(M0) (i.e., doing a sensitivity analysis): a _(ij) =[F _(j)(X ₁₀ , X ₂₀ , . . . , X _(j0) +nσ _(j) , . . . , X _(M0))−F ₁₀]/(nσ_(j)), j=1, 2, . . . , M, where F_(j0)=F_(j)(X₁₀, X₂₀, . . . , X_(j0), . . . , X_(M0)), and n can be 1, −1, 2, −2, 3, −3, or many other discrete values. Practically, the coefficient a_(ij) indicates how sensitive the target F_(i) is with respect to the change in the model parameter X_(j).

Let σ_(j) be the standard deviation (i.e., 1-σ tolerance) of jth model parameter X_(j). Then the joint probability for parameters X₁, X₂, . . . , X_(M) is (assuming that X₁, X₂, . . . , X_(M) are statistically independent of each other): $\begin{matrix} {{{P\left( {x_{1},\quad x_{2\quad},\quad\ldots\quad,\quad x_{M}} \right)} = {{const} \cdot {\exp\left\lbrack {{- \frac{1}{2}}{\sum\limits_{j = 1}^{M}\quad\frac{\left( {x_{j} - x_{j0}} \right)^{2}}{\sigma_{j}^{2}}}} \right\rbrack}}}\quad} & (2) \end{matrix}$

Using the distribution (2), it is easy to verify some average values: <X _(j) >=X _(j0)<(X _(j) −X _(j0))²>=σ² _(j)=1,2, . . . , M <(X _(j) −X _(j0))(X _(i) −X _(10>=)0, j≠I,j,I=1,2, . . . , M

Using them, find the average value of the ith target, <F_(i)>=F_(i0) i=1, 2, . . . , N and the variance of the ith target, $\begin{matrix} {{\sum\limits_{i}^{2}\quad{\equiv {\left\langle F_{i}^{2} \right\rangle - \left\langle F_{i} \right\rangle^{2}}}} = {{\sum\limits_{j = 1}^{M}\quad{a_{ij}^{2}\sigma_{j}^{2},\quad i}} = {1,\quad 2\quad,\quad\ldots{\quad,}\quad N}}} & (3) \end{matrix}$

Relation (3) links the standard deviations Σ_(i) of the circuit performance targets to the standard deviations σ _(j) of the compact model parameters.

1-σ Worst-Worst Case (or 1-σ Best-Best Case):

The so-called 1-σ worst-worst case (or best-best case) is obtained by setting all model parameters to their respective 1-σ worst (or best) case value: ${{F_{i}\left( {{{X_{10} \pm {\sigma_{1},\quad x_{20}}} \pm {\sigma_{2},\quad\ldots\quad,\quad x_{M0}}} \pm \sigma_{M}} \right)} = {\left. {F_{i0} \pm \sum\limits_{j = 1}^{M}}\quad \middle| a_{ij} \middle| {\sigma_{j},\quad i} \right. = {1,\quad 2{,\quad}\quad\ldots\quad,\quad N,}}}\quad$ which is much more off than 1-σ worst case (or best case). The reason is that ${\sum\limits_{j = 1}^{M}\quad\left| a_{ij} \middle| {\sigma_{j} > \sum\limits_{\quad i}^{\quad}} \right.}\quad = \left( {\sum\limits_{j = 1}^{M}\quad{a_{ij}^{2}\sigma_{j}^{2}}} \right)^{\frac{1}{2}}$

To see this, square the left hand side of the above inequality, and obtain $\left( {\sum\limits_{j = 1}^{M}\quad\left| a_{ij} \middle| \sigma_{j} \right.} \right)^{2} = {{\left( {\sum\limits_{j = 1}^{M}\quad\left| a_{ij} \middle| \sigma_{j} \right.} \right)\left( {\sum\limits_{l = 1}^{M}\quad\left| a_{il} \middle| \sigma_{l} \right.} \right)} = \left. {{\sum\limits_{j = 1}^{M}\quad{a_{ij}^{2}\sigma_{j}^{2}}} + \sum\limits_{{j,\quad l} = {{1,\quad j} \neq l}}^{M}}\quad \middle| {a_{ij}a_{il}} \middle| \sigma_{j}^{2} \right.}$ namely, ${\left( {\sum\limits_{j = 1}^{M}\quad\left| a_{ij} \middle| \sigma_{j} \right.} \right)^{2} = \left. {\sum\limits_{i}^{2}\quad{+ \sum\limits_{{j,\quad l} = {{1,\quad j} \neq l}}^{M}}}\quad \middle| {a_{ij}a_{il}} \middle| {\sigma_{j}^{2} > \sum\limits_{i}^{2}} \right.}\quad$

To get an understanding on how much off the worst-worst case (or best-best case) is, examine a special case. When each parameter gives the same contribution Σ_(j), i.e., |a_(ij)|σ_(j)=|a_(i1)|σ₁, j=2,3, . . . , M we find that $\sum\limits_{\quad i}^{\quad}\quad{= {\left. \sqrt{M} \middle| a_{i1} \middle| {\sigma_{1},\quad i} \right. = {1,\quad 2,\quad\ldots\quad,\quad N}}}$ and thus ${F_{i}\left( {{{X_{10} \pm {\sigma_{1},\quad x_{20}}} \pm {\sigma_{2},\quad\ldots\quad,x_{M}}} \pm \sigma_{M}} \right)} = {\left. {F_{i0} \pm M} \middle| a_{i1} \middle| \sigma_{1} \right. = {{F_{i0} \pm {\sqrt{M}{\sum\limits_{\quad i}^{\quad}\quad{,\quad i}}}} = {1,\quad 2,\quad\ldots\quad,\quad N}}}$

The above discussion shows quantitatively why one can not get the best/worst case solution by simply skewing all model parameters to their respective best/worst skew corner. It also indicates that, in order to reach the best/worst case solution, the model parameters should take values within their respective tolerance range (X_(j0)−σ_(j), X_(j0)+σ_(j)).

In a normalized coordinate system. First introducing normalized sensitivity coefficients $\begin{matrix} {{\alpha_{ij} = {{\frac{a_{ij}\sigma_{j}}{\sum\limits_{\quad i}^{\quad}\quad},\quad i} = {{1,\quad 2,\quad\ldots\quad,\quad N,\quad j} = {1,\quad 2,\quad\ldots\quad,\quad M}}}}\quad} & (4) \end{matrix}$ we find that each equation in Eqs. (3) can be recast to a form of a unit length vector, $\begin{matrix} {{{\sum\limits_{j = 1}^{M}\alpha_{ij}^{2}} = 1},\quad{i = 1},2,\quad{\ldots\quad N}} & \left( \text{5a} \right) \end{matrix}$

Equation (5a) shows that each normalized sensitivity coefficient is within −1 and 1, −1≦α_(ij)≦1, i=1,2, . . . , N j=1,2, . . . , M  (5b)

Next introduce a shifted-and-scaled coordinate system, u _(j)=(X _(j) −X _(j0))/σ_(j)  (6) which is dimensionless. Notice that u_(j)=1 corresponds to X_(j)=X_(j0)+σ_(j). Also, |u_(j)|<1 corresponds to the model parameter X_(j) within its tolerance range: X_(j0)−σ_(j)<X_(j0)+σ_(j). In terms of the dimensionless, shifted-and-scaled coordinates, the joint probability distribution (2) becomes $\begin{matrix} {{P\left( {u_{1},u_{2},\quad\ldots\quad,u_{M}} \right)} = {{const} \cdot {\exp\left( {{- \frac{1}{2}}{\sum\limits_{j - 1}^{M}u_{j}^{2}}} \right)}}} & (7) \end{matrix}$

The 1-σ best/worst case of F_(j) is either $\left( {F_{i\quad 0} + \sum\limits_{i}} \right)\quad{or}\quad{\left( {F_{i\quad 0} - \sum\limits_{i}} \right).}$ To be clear, denote $F_{i} = {F_{i0} + {\eta_{i}\sum\limits_{i}}}$ with η_(i) being 1 or −1. Substituting Eq. (6) into Eq. (1), in order to reach the best/worst cases of N performance targets F_(j) (i=1, 2, . . . , N) simultaneously, the following conditions have to be satisfied simultaneously, $\begin{matrix} {{{\sum\limits_{j = 1}^{M}{a_{ij}\sigma_{j}u_{j}}} = {\eta_{i}\sum\limits_{i}}},\quad{i = 1},2,\ldots\quad,N} & \left( {8a} \right) \end{matrix}$

The difference and similarity between Eqs. (8a) and (3) should be noticed. Making use of Eqs. (4) in Eq. (8a), obtain a simpler form of Eq. (8a), $\begin{matrix} {{{\sum\limits_{j = 1}^{M}{\alpha_{ij}u_{j}}} = {{\eta_{i}\quad i} = 1}},2,\ldots\quad,N} & \left( {8b} \right) \end{matrix}$

See what happens if we need to provide N separate skew corners, i.e., one skew corner for the best/worst case value of target F₁ only, and another skew corner for the best/worst case value of target F₂ only, etc. By comparing Eq. (8b) with Eq. (5a), we know that $\begin{matrix} {{u_{j} = {{\eta_{i}\alpha_{ij}} = {\eta_{i}\frac{a_{ij}\sigma_{j}}{\sum\limits_{i}}}}},\quad{j = 1},2,\ldots\quad,M} & (9) \end{matrix}$ are a set of solutions. Since _(η) _(j) is either 1 or −1, it is easy to see from Eq. (5b) that −1≦u_(j)≦1. [Certainly, these are NOT unique solutions, since there are M variables but there is only one constraint.] Using Eq. (5a) and noting that η_(i) is either 1 or −1, we get the following unit-length-vector relation for the skew corner solution in Eq. (9), $\begin{matrix} {{\sum\limits_{j = 1}^{M}u_{j}^{2}} = 1} & (10) \end{matrix}$

The following discussion assumes that the best/worst cases of N performance targets F_(j) (i=1, 2, . . . , N) are obtained simultaneously. Geometrically, each equation in Eq. (8b) (which contains N equations) represents a plane in an M-dimensional space whose distance to the center of the shifted and scaled coordinate system is 1, and the normal direction of the plane is, (α_(i1), α_(i2), . . . , α_(iM)) for the ith target. In other words, each plane is tangent to a unit sphere in the M-dimensional space. FIG. 1 illustrates this in the case of M=2, i.e., on a two-dimensional plane, in which the unit sphere reduces to a unit circle, and the M-dimensional plane becomes a straight line.

FIG. 1 illustrates that the cross point C of the two straight lines plotted satisfies 0<cos φ<u₁(C)<cos θ<1 and 0<sin θ<u₂(C)<sine φ<1.

Depending on whether N or M is larger, three situations can occur, as discussed below.

I. Situation of N=M. If N=M exactly (wherein N is the number of performance targets and M is the number of model parameters), then the M linear algebraic equations (8) will uniquely determine M coordinates u₁, u₂, . . . , u_(M).

When all ratios α_(j1)/η_(j) (i=1, 2, . . . , N) have the same sign (or being zero), and all ratios _(α) _(j2)/η_(j) (i=1, 2, . . . , N) have the same sign (or being zero), etc., the solution will be within [−1, 1] range: −1≦u_(j)≦1, j=1, 2, . . . , M. An example of N=M=2 is illustrated in FIG. 1. Also, the sign of u_(j) is the same as that of α_(ij)/η_(j).

In summary, for the case of N=M wherein the number N of performance targets equals the number M of model parameters with tolerance, a set of M linear algebraic equations with M unlmowns are solved to find, for each of the M model parameters, a shift amount away from a nominal value, the resulting M skewed model parameter values reproduce N skewed performance targets simultaneously.

II. Situation of N>M. If N>M, there are more equations than unknowns, and a least-squares fit method can be used to achieve an optimum set of u₁, u₂, . . . , u_(M). Specifically, we want to minimize this target function, $\begin{matrix} {{T\left( {u_{1},u_{2},\ldots\quad,u_{M}} \right)} = {\sum\limits_{i = 1}^{M}\left\lbrack {\left( {\sum\limits_{j = 1}^{M}{\alpha_{ij}u_{j}}} \right) - \eta_{i}} \right\rbrack^{2}}} & (11) \end{matrix}$

Setting each of M first-order derivatives to zero, $\begin{matrix} {{\frac{\partial T}{\partial u_{k}} = {{\sum\limits_{i = 1}^{N}{2{\alpha_{ik}\left\lbrack {\left( {\sum\limits_{i = 1}^{M}{\alpha_{ij}u_{j}}} \right) - \eta_{i}} \right\rbrack}}} = 0}},\quad{k = 1},2,\ldots\quad,M,} & (12) \end{matrix}$ we have M linear algebraic equations to determine M unknowns u₁, u₂, . . . , u_(M), $\begin{matrix} \begin{matrix} {{\sum\limits_{j = 1}^{M}{A_{kj}u_{j}}} = B_{k,}} & \quad & {{k = 1},2,\ldots\quad,M,} \end{matrix} & (13) \end{matrix}$ where coefficients $\begin{matrix} \begin{matrix} {{A_{kj} = {\sum\limits_{i = 1}^{N}{\alpha_{ik}\alpha_{ij}}}},} & \quad & {k,{j = 1},2,\ldots\quad,M} \end{matrix} & \left( {14a} \right) \\ \begin{matrix} {{B_{k} = {\sum\limits_{i = 1}^{N}{\eta_{i}\alpha_{ik}}}},} & \quad & {{k = 1},2,\ldots\quad,M,} \end{matrix} & \left( {14b} \right) \end{matrix}$

Again, when all ratios α_(j1)/η_(j) (i=1, 2, . . . , N) have the same sign (or being zero), and all ratios α_(j2)/η_(j) (i=1, 2, . . . , N) have the same sign (or being zero), etc., the solution will be within [−1, 1] range: −1≦u_(j)≦1, j=1, 2, . . . , M. Also, the sign of u_(j) is the same as that of α_(ij)/η_(i). An example of N=3 and M=2 is illustrated in FIG. 2. The solution point S is located within a triangle formed by 3 straight lines, and thus it satisfies −1≦u₁(S), u₂(S)≦1. For example, when the angle θ is 45 degrees, the coefficients are A₁₁=A₂₂=3/2, A₁₂=A₂₁=1/2, B₁=B₂=1+1/2^(1/2)=1.707, and thus the least-square solution is u₁(S)=u₂(S)=B₁2=0.8535.

FIG. 2 illustrates that the least-squares solution point S of the three straight lines satisfies 0<u₁(S), u₂(S)<1.

In summary, for the case of N>M wherein the number N of performance targets is more than the number M of model parameters with tolerance, a least-squares fit method is used to achieve an optimum set of M shift amounts away from their nominal values.

III. Situation of N<M. If N<M, we actually have freedom to choose (M−N) parameters (say, u_(N+1), . . . , u_(M)) first and then solve N linear algebraic equations to obtain the rest Of N parameters (say, u₁, u₂, . . . , u_(N)). The optimum choice, however, is to maximize the joint probability distribution (7) subject to the N constraints as given by Eqs. (8b). In other words, we want to minimize $\sum\limits_{j = 1}^{M}u_{j}^{2}$ under the N restrictions. Mathematically, we minimize the following target function, $\begin{matrix} \begin{matrix} {{T\left( {u_{1},u_{2},\ldots\quad,u_{M},\lambda_{1},\lambda_{2},\ldots\quad,\lambda_{N}} \right)} = {{\sum\limits_{j = 1}^{M}u_{j}^{2}} +}} \\ {\sum\limits_{i = 1}^{N}{\lambda_{i}\left( {{\sum\limits_{j = 1}^{M}{\alpha_{ij}u_{j}}} - \eta_{i}} \right)}} \end{matrix} & (15) \end{matrix}$

Setting each of (M+N) first-order derivatives to zero, $\begin{matrix} \begin{matrix} {{\frac{\partial T}{\partial u_{j}} = {{{2u_{j}} + {\sum\limits_{i - 1}^{N}{\lambda_{i}\alpha_{ij}}}} = 0}},} & \quad & {{i = 1},2,\ldots\quad,M,} \end{matrix} & \left( {16a} \right) \\ \begin{matrix} {{\frac{\partial T}{\partial\lambda_{i}} = {{{\sum\limits_{j = 1}^{M}{\alpha_{ij}u_{j}}} - \eta_{i}} = 0}},} & \quad & {{i = 1},2,\ldots\quad,N,} \end{matrix} & \left( {16b} \right) \end{matrix}$ we have (M+N) linear algebraic equations to determine (M+N) unknowns u₁, u₂, . . . , u_(M), λ₁, λ₂, . . . , λ_(N). Notice that Eqs. (16b) are just Eqs. (8b).

For example, when M=2 and N=1, we have the case of “one line on a 2D plane”. Let the line equation be (see FIG. 1) u ₁cos φ+u ₂sin φ=1.  (17)

The target function to minimize is now T(u ₁ , u ₂, λ)=u ₁ ² +u ₂ ²+λ(u ₁cos φ+u ₂sin φ−1).

Three equations (since M+N=3) are 2u₁+λcos φ=0, 2u₂+λsin φ=0, and Eq. (17). The solution is u₁=cos φ, u₂=sin φ, and λ=−2, in agreement with FIG. 1.

A typically used method is to skew all model parameters (here u₁ and u₂) together in the same percentage amount (with respect to individual parameter's best/worst case) through the use of a nominal random number (NRN), namely, u₁=u₂=NRN. In terms of FIG. 1, this method corresponds to moving out in 45-degree direction. As FIG. 1 illustrates, this method usually does not give the optimum skew corner.

In general, Eq. (16a) leads to $\begin{matrix} \begin{matrix} {{u_{j} = {{- \frac{1}{2}}{\sum\limits_{i = 1}^{N}{\lambda_{i}\alpha_{ij}}}}},} & \quad & {{j = 1},2,\ldots\quad,M} \end{matrix} & (18) \end{matrix}$

Substitution of Eq. (18) into Eq. (16b) gives N algebraic equations for $\begin{matrix} {\lambda_{1},\lambda_{2},\ldots\quad,\lambda_{N},} & \quad \\ \begin{matrix} {{{\sum\limits_{k = 1}^{N}{b_{ik}\lambda_{k}}} = {{- 2}\quad\eta_{i}}},} & \quad & {{i = 1},2,\ldots\quad,N} \end{matrix} & (19) \end{matrix}$ where the coefficients $\begin{matrix} \begin{matrix} {{b_{ik} = {\sum\limits_{j = 1}^{M}{\alpha_{ij}\alpha_{kj}}}},} & \quad & {i,{k = 1},2,\ldots\quad,N} \end{matrix} & (20) \end{matrix}$

Owing to the unit-length-vector relation (5a), we see that b_(ii)=1, i=1,2, . . . , N,  (21a) and −1≦b _(ik)≦1, i,k=1,2, . . . , N, i≠k  (21b)

When there is onlv 1 target. i.e., when N=1, we get from Eq. (18) that $\begin{matrix} \begin{matrix} {{u_{j} = {{- \frac{1}{2}}\lambda_{1}\alpha_{1j}}},} & \quad & {{j = 1},2,\ldots\quad,M} \end{matrix} & (22) \end{matrix}$

Also, we obtain from Eqs. (19) and (21a) that b ₁₁λ₁=λ₁=−2η₁  (23)

Substitution of Eq. (23) into Eq. (22) gives us solution $\begin{matrix} \begin{matrix} {{u_{j} = {{\eta_{1}\alpha_{1j}} = {\eta_{1}\frac{a_{1j}\sigma_{j}}{\sum\limits_{1}}}}},} & \quad & {{j = 1},2,\ldots\quad,M,} \end{matrix} & (24) \end{matrix}$ where the second equality is the result of using definition (4). A set of solutions (24) are just Eqs. (9) given previously. Notice that |u_(j)|≦1, j=1, 2, . . . , M. Similarly, a set of solutions (24) satisfy unit-length-vector relation (10). Equations (24) also reveal that solution (9) is a set of optimum solutions (for a single target problem), since it maximizes the joint probability distribution. A set of solutions (24) also says that the amount of skewing, u_(j), for each parameter X_(j) is proportional to the projection α_(1j) of plane normal direction on the jth axis. In an example of ${M = {{4\quad{with}\quad\alpha_{11}} = {{a_{11}{\sigma_{1}/\sum\limits_{1}^{\quad}}} = 0.8}}},{\alpha_{12} = {{a_{12}{\sigma_{2}/\sum\limits_{1}^{\quad}}} = 0.48}},{a_{13} = {{a_{13}{\sigma_{3}/\sum\limits_{1}^{\quad}}} = 0.288}},{{{and}\quad\alpha_{14}} = {{a_{14}{\sigma_{4}/\sum\limits_{i}^{\quad}}} = 0.216}},$ relation (5a) is satisfied. For the case of η₁=1, the solution is simply u₁=0.8, u₂=0.48, u₃=0.288, and u₄=0.216.

If (u₁, u₂, . . . , u_(M)) are a set of solutions for 1-σ best/worst case, then (3u₁, 3u₂, . . . , 3u_(M)) are the set of solutions for 3-σ best/worst case.

In summary, for the case of N<M wherein the number N of performance targets is less than the number M of model parameters with tolerance, maximize the joint probability distribution of M model parameters under the constraints of satisfying N skewed performance targets simultaneously, the resulting M skewed model parameter values reproduce N skewed performance targets simultaneously and are also a set of optimum skewed model parameter values, to generate an optimum skew corner.

In summary, for N=1 wherein a skew corner is needed for only one performance target, maximize the joint probability of M model parameters under the constraint of reproducing the best or worst case of that performance target, under the constraint of satisfying only one skewed performance target, by shifting the j^(th) (j=1,2, . . . , M) of M model parameters by a percentage amount of +a_(1j σj)/Σ₁ when the value of the performance target increase in the skewed case, or −a_(1.jσj)/Σ₁ when the value of the performance target decreases m the skewed case, wherein a_(1j) is the sensitivity of the first performance target with respect to the j^(th) model parameter, σj is the tolerance of the j^(th) model parameter, and Σ₁ the square root of [(a_(11σ1))²+(a_(12σ2))²+ . . . + (a_(1MσM))²], the tolerance of the first performance target.

The resulting percentage shift amounts, measured with respect to the tolerance of each model parameter's tolerance among M model parameters, are different from one another, and the resulting percentage shift amounts are the same if the relative sensitivities are the same.

In the following, we discuss the generalization of the above results.

A. Opposite model parameter skewing directions for multiile performance targets

In interconnect models, a wider wire has less resistance, but also has larger wiring capacitance. In other words, the best case of wire resistance requires a wider wire, but the best case of wiring capacitance requires a narrower wire, an opposite parameter skewing direction.

FIG. 3 illustrates a case in which two different performance targets lead to a₁₁ and a₂₁ have the same sign, but a₁₂ and a₂₂ have opposite signs. The resulting solution is in the region of |u₁(C)|>1, which may not be desirable.

FIG. 4 shows a further example of N=M=2 with opposite signs between a₁₁ and a₂₁ and also opposite signs between a₁₂ and a₂₂. In FIG. 4, both |u₁(C)| and |u₂(C)| are larger than 1. If a result with |u_(j)(C)|>1 is not acceptable, we provide a solution here: to group multiple performance targets into several groups. In each group, all ratios α_(j1)/η_(j) (i=1, 2, . . . , N) have the same sign (or being zero), all ratios α_(j2)/η_(j) (i=1, 2, . . . , N) have the same sign, etc. After such grouping, an initial case of “N>M” may become N=N₁+N₂+ . . . , with N₁<M, N₂<M, etc. A separate skew corner is provided for each group of performance targets. For each skew corner, we will have the bounded solution of |u_(j)(C)|≦1, j=1, 2, . . . , M. Also, the sign of u_(j) is the same as that of α_(ij)/η_(i).

Now, we can summarize the steps used in our method of generating optimum skew corner for a compact device model.

1. Collect a number N of multiple performance targets F_(i), i=1, 2, . . . , N.

2. Identify a number M of model parameters. For each model parameter, its tolerance should be given along with its nominal value in the compact model. Also, for each model parameter, decide if it should be included in the skew-corner analysis or not. For example, when deciding the skew corner for just interconnect wiring resistance and capacitance, there is no need to include the FET model parameter TOX, mobility, Cj, etc. This step determines the number M of involved model parameters.

3. Do a sensitivity analysis for each target. Namely, find coefficients a_(ij) in Eq. (1). Their total number is NM.

4. Decide the sign (and value) of η_(i) for the worst (or best) case of ith target, F_(i).

5. Divide performance targets into more groups if necessary. After grouping, in each group, all ratios α_(i1)/η_(i) (i=1, 2, . . . , N) should have the same sign (or being zero), all ratios α_(j2)/η_(i) (i=1, 2, . . . , N) have the same sign, etc. For example, in the case of an interconnect model, the worst case of resistance R, the best case of capacitance C, and the worst case of the product RC belong to one group, where as the best case of resistance R, the worst case of capacitance C, and the best case of the product RC belong to another group.

6. For each group, decide whether it belongs to situation I, II, or III discussed above. Specifically, this is done by comparing the number of targets N in the group and its relation to the number of model parameter number M.

7. For each group, calculate a separate skew corner using the corresponding method for the situation. The results are the bounded solution of |u_(j)|≦1, j=1, 2, . . . , M, with the sign of u_(j) being the same as that of α_(ij)/η_(i).

FIG. 3 illustrates an example of N=2 (two targets) and M=2 (two parameters), wherein opposite signs between a₁₂ and a₂₂ leads to a solution |u₁(C)|>1.

FIG. 4 illustrates an example of N=2 (two targets) and M=2 (two parameters), wherein opposite signs between a₁₁ and a₂₁ and opposite signs between a₁₂ and a₂₂ leads to a solution |u₁(C)|>1 and |u₂(C)|>1.

B. NFET and PFET difference and correlation

A model parameter X_(j) [e.g., effective Tox, ΔL, ΔW, Vt, Cj, etc.] for NFET and that PFET often have different nominal values X_(jN0) and X_(jP0) and, sometime, even different standard deviations σ_(jN) and σ_(jP). Since, say, Tox for NFET and Tox for PFET are highly correlated, it is important to treat Tox(NFET) and Tox(PFET) as two separate variables X_(jN) and X_(jP) that are highly correlated. In other words, TOX(NFET) and Tox(PFET) should be tied together somehow. The correct treatment goes like this.

Equation (1) is generalized to: $\begin{matrix} {{F_{1} = {F_{i0} + {\sum\limits_{j = 1}^{M}{a_{ij}\left( {x_{jN} - x_{jN0}} \right)}} + {\sum\limits_{j = 1}^{M}{b_{ij}\left( {x_{jP} - x_{jP0}} \right)}}}},{i = 1},2,\ldots\quad,N} & (25) \end{matrix}$

Under the assumption that X_(jN) and X_(jP) are fully correlated, we mean that, when X_(jN)=X_(jN0), one has X_(jP)=X_(jP0) and that, when X_(jN)=X_(jNo)+/−σ_(jN), one also has X_(jP)=X_(jP0)+/−σ_(jP). Quantitatively, the complete correlation of X_(jN) and X_(jP) means that u _(j)=(X _(jN) −X _(jN0))/σ_(jN)=(X _(jP) −X _(jP0))/σ_(jP)  .(26)

Substitution Of Eq. (26) into Eq. (25) gives $\begin{matrix} \begin{matrix} {{F_{i} = {F_{i0} + {\sum\limits_{j = 1}^{M}{\left( {{a_{ij}\sigma_{iN}} + {b_{ij}\sigma_{jP}}} \right)u_{j}}}}},} & {{i = 1},2,\ldots\quad,N,} \end{matrix} & (27) \end{matrix}$

Equation (3) is generalized to $\begin{matrix} \begin{matrix} {{\sum\limits_{i}^{2}{= {\sum\limits_{j = 1}^{M}\left\lbrack {\left( {a_{ij}\sigma_{jN}} \right)^{2} + \left( {b_{ij}\sigma_{jP}} \right)^{2}} \right\rbrack}}},} & {{i = 1},2,\ldots\quad,N} \end{matrix} & (28) \end{matrix}$

Equation (4) is now generalized to $\begin{matrix} {{\alpha_{ij} = {{\frac{1}{\sum\limits_{i}^{\quad}\quad}\sqrt{{\left( {a_{ij}\sigma_{jN}} \right)^{2} + \left( {b_{ij}\sigma_{jP}} \right)^{2}},}\quad i} = 1}},2,\ldots\quad,N} & (29) \end{matrix}$

After Eq. (29), previously written Eqs. (5), (7)-(24) are all valid.

FIG. 5 illustrates several skew corners for the saturation current of a pair of NFET and PFET devices, wherein 1 designates the fast-NFET-fast-PFET skew corner, 2 designates the slow-NFET-slow-PFET skew corner, 3 designates the fast-NFET-slow-PFET skew corner, and 4 designates the slow-NFET-faSt-PFET skew corner.

C. Fast-NFET-Slow-PFET skew corner and Slow-NFET-Fast-PFET skew corner.

A fast-NFET-fast-PFET skew corner usually means ${I_{N} = {{I_{N0} + {\sum\limits_{N}^{\quad}\quad{{and}\quad I_{P}}}} = {I_{P0} + \sum\limits_{P}^{\quad}}}}\quad,$

and similarly a “slow-NFET-slow-PFET” skew corner implies $I_{N} = {{I_{N0} - {\sum\limits_{N}^{\quad}\quad{{and}\quad I_{P}}}} = {I_{P0} - {\sum\limits_{P}^{\quad}.}}}$ However, a “fast-NFET-slow-PFET” skew corner does not mean $I_{N} = {{I_{N0} - {\sum\limits_{N}^{\quad}\quad{{and}\quad I_{P}}}} = {I_{P0} - {\sum\limits_{P}^{\quad}.}}}$ Rather, it means that $I_{N} = {{I_{N0} + {\eta_{N}{\sum\limits_{N}^{\quad}\quad{{and}\quad I_{P}}}}} = {{I_{P0} + {\eta_{P}{\sum\limits_{P}^{\quad}\quad{{with}\quad 0}}}} < \eta_{N} < {{1\quad{and}}\quad - 1} < \eta_{P} < 0}}$ (say, η_(N)=−η_(P)=0.4). For the more general case in which ${F_{i} = {F_{i0} + {\eta_{N}\sum\limits_{i}^{\quad}}}},{i = 1},2,\ldots\quad,N,\eta_{i}$ in Eqs. (8), (9), (11), (12), (14b), (15), (16b), (19), (23), and (24) can be in the range of [−1, 1].

FIG. 6 is an example of a fast-NFET-slow-PFET skew corner. It shows that, with 0<η_(N)<1 and −1<η_(P)<0, one can get 0<u₁(C)<1 and −1<u₂(C)<1, as desired. (u₁ corresponds to I_(N) in FIG. 5, and u₂ corresponds to I_(P) in FIG. 5).

D. Original FET Parameters are not mutually independent.

The joint probability distribution (2) can be generalized and be written as $\begin{matrix} {{{P\left( {x_{1},x_{2},\ldots\quad,x_{M}} \right)} = {{const} \cdot {\exp\left\lbrack {{- \frac{1}{2}}{\sum\limits_{i,{j = 1}}^{M}\frac{{ɛ_{ij}\left( {x_{i} - x_{i0}} \right)}\left( {x_{j} - x_{j0}} \right)}{\sigma_{i}\sigma_{j}}}} \right\rbrack}}},} & (30) \end{matrix}$ where ε_(ij)=ε_(ji) and ε_(ij)=1. Un-correlated distribution (2) is a special case of more general distribution (30) with ε_(ij)=0 for i≠j. In the shifted-and-scaled coordinate system, distribution (30) becomes $\begin{matrix} {{{P\left( {u_{1},u_{2},\ldots\quad,u_{M}} \right)} = {{const} \cdot {\exp\left\lbrack {{- \frac{1}{2}}{\sum\limits_{i,{j = 1}}^{M}{ɛ_{ij}u_{i}u_{j}}}} \right\rbrack}}},} & (31) \end{matrix}$

Further, Eq. (15) is generalized to $\begin{matrix} \begin{matrix} {{T\left( {u_{1},u_{2},\ldots\quad,u_{M},\lambda_{1},\lambda_{2},\ldots\quad,\lambda_{N}} \right)} = {{\sum\limits_{i,{j = 1}}^{M}{ɛ_{ij}u_{i}u_{j}}} +}} \\ {{\sum\limits_{i = 1}^{N}{\lambda_{i}\quad{\sum\limits_{j = 1}^{M}\left( {{\alpha_{ij}u_{j}} - \eta_{i}} \right)}}},} \end{matrix} & (32) \end{matrix}$ and Eq. (16a) becomes $\begin{matrix} \begin{matrix} {{\frac{\partial T}{\partial u_{j}} = {{{2\quad{\sum\limits_{i = 1}^{M}{ɛ_{ij}u_{i}}}} + {\sum\limits_{i = 1}^{N}{\lambda_{i}\alpha_{ij}}}} = 0}},} & {\quad{{j = 1},2,\ldots\quad,M}} \end{matrix} & (33) \end{matrix}$

Now, Eqs. (8b) and (33) determines (M+N) parameters u₁, u₂, . . . , u_(M) and λ₁, λ₂, . . . , λ_(N).

E. Second-order approximation.

If quadratic response surfaces (second-order expansions) are used to replace Eqs. (1), then Eqs. (8) will also be replaced by quadratic expressions. [Similarly, the multiplier on λ_(k) in Eq. (15) will also be quadratic.] As mentioned at the beginning of the discussion, the above first-order solution will serve as the starting point of an iteration solution process. interconnect model, wherein:

F. Interconnect Models

For a first interconnect model: a first skew corner model is constructed for the worst case of resistance R; a second skew corner model is constructed for the best case of capacitance C; a third skew corner model is constructed for the worst case of the product RC; a fourth skew corner model is constructed for simultaneously the worst case of resistance R and the best case of capacitance C; and a fifth skew corner model is generated for simultaneously the worst case of resistance R, the best case of capacitance C, and the worst case of the product RC.

For a second interconnect model: a first skew corner model is constructed for the best case of resistance R; a second skew corner model is constructed for the worst case of capacitance C; a third skew corner model is constructed for the best case of the product RC; a fourth skew corner model is constructed for simultaneously the best case of resistance R and the worst case of capacitance C; and a fifth skew corner model is generated for simultaneously the best case of resistance R, the worst case of capacitance C, and the best case of the product R.

While several embodiments and variations of the present invention for a method of generating optimum skew corners for a compact device model are described in detail herein, it should be apparent that the disclosure and teachings of the present invention will suggest many alternative designs to those skilled in the art. 

1. A method for generating optimum skew corners for a compact device model, comprising the steps of: collecting a number N of multiple performance targets F_(i), wherein i=1, 2, . . . N; identifying a number M of model parameters to be included in a skew corner analysis, and for each model parameter its tolerance and its nominal value in the compact device model; for each said performance target F_(i), doing a sensitivity analysis and finding N sensitivity coefficients a_(ij), wherein J=1, 2, . . . , M; for each said performance target F_(i), setting a sign and value of a parameter η_(i) for a skew corner case to η_(i)=1 if a value of the target F_(i) increases in the skew corner case and to η_(i)=−1 if the value of the target F_(i) decreases in the skew corner case; classifying performance targets into groups; for each group, comparing the number of targets N in the group and its relation to the number of model parameters M; and for each group, calculating a skew corner coordinate based on the relationship between the number of targets N and the number of model parameters M.
 2. The method of claim 1, wherein the skew corner case comprises a worst or slow case.
 3. The method of claim 1, wherein the skew corner case comprises a best or fast case.
 4. The method of claim 1, wherein the skew corner case comprises a fast-NFET-slow-PFET skew corner.
 5. The method of claim 1, wherein in the step of classifying performance targets into groups, denoting in each group the performance targets within the k^(th) group as i_(k1), i_(k2), . . . , i_(kN), wherein a_(i1) and a_(i2) are coefficients obtained by evaluating the compact device model, and all ratios a_(i1)/η_(i), for i=i_(k1), i_(k2), . . . , i_(kN) have the same sign or are zero, and all ratios a_(i2)/η_(i), for i=i_(k1), i_(k2), . . . , i_(kN) have the same sign or are zero.
 6. The method of claim 1, wherein the step of comparing further comprising determining if N=M, or N>M, or N<M, wherein M is the number of model parameters.
 7. The method of claim 1, wherein the compact device model comprises an FET device.
 8. The method of claim 7, wherein the model parameters include TOX-oxide thickness, ΔL—the difference between drawn design length and actual electrical length, ΔW—the difference between the design width of the FET device and the actual electrical width of the FET device, threshold voltage, mobility, and junction capacitance.
 9. The method of claim 1, wherein the compact device model comprises a passive device.
 10. The method of claim 9, wherein the passive device comprises a resistor, and the model parameters include sheet resistance of the resistor, the resistor temperature coefficient, resistor length, and resistor width.
 11. The method of claim 1, wherein the compact device model comprises an interconnect model.
 12. The method of claim 6, wherein the compact device model is for an integrated circuit having a plurality of metal levels, and the model parameters include wire length, wire width, wire thickness, wire-to-wire space in a same metal level, vertical distance to a next metal level above, and vertical distance to a next metal level below, vertical distance to a substrate/N-well/diffusion region below.
 13. The method of claim 11, further comprising: constructing a first skew corner model for a worst case of resistance R; constructing a second skew corner model for a best case of capacitance C; constructing a third skew corner model for a worst case of the product RC; constructing a fourth skew corner model for simultaneously the worst case of resistance R and the best case of capacitance C; generating a fifth skew corner model for simultaneously the worst case of resistance R, the best case of capacitance C, and the worst case of the product RC.
 14. The method of claim 11, wherein: constructing a first skew corner model for a best case of resistance R; constructing a second skew corner model for a worst case of capacitance C; constructing a third skew corner model for a best case of the product RC; constructing a fourth skew corner model for simultaneously the best case of resistance R and the worst case of capacitance C; generating a fifth skew corner model for simultaneously the best case of resistance R, the worst case of capacitance C, and the best case of the product R.
 15. The method of claim 6, wherein for the case of N=M wherein the number N of performance targets equals the number M of model parameters with tolerance, solving a set of M linear algebraic equations with M unknowns to find, for each of the M model parameters, a shift amount away from a nominal value, with a resulting M skewed model parameter values reproducing N skewed performance targets simultaneously.
 16. The method of claim 6, wherein for the case of N>M wherein the number N of performance targets is more than the number M of model parameters with tolerance, using a least-squares fit method to achieve an optimum set of M shift amounts away from their nominal values.
 17. The method of claim 6, wherein for the case of N<M wherein the number N of performance targets is less than the number M of model parameters with tolerance, maximizing the joint probability distribution of M model parameters under the constraints of satisfying N skewed performance targets simultaneously, the resulting M skewed model parameter values reproducing N skewed performance targets simultaneously and also a set of optimum skewed model parameter values, generating an optimum skew corner.
 18. The method of claim 17, wherein for N=1 wherein a skew corner is needed for only one performance target, maximizing the joint probability of M model parameters under the constraint of reproducing the best or worst case of that performance target, under the constraint of satisfying only one skewed performance target, by shifting the j^(th) (j=1, 2, . . . , M) of M model parameters by a percentage amount of +a_(1j σj)/Σ₁ when the value of the performance target increase in the skewed case, or by a percentage amount of −a_(1jσj)/Σ₁ when the value of the performance target decreases in the skewed case, wherein a_(1j) is the sensitivity of the first performance target with respect to the j^(th) model parameter, σ_(j) is the tolerance of the j^(th) model parameter, and Σ₁=the square root of [(a_(1jσ1))²+(a_(12σ2))²+ . . . +(a_(1MσM))²], the tolerance of the first performance target.
 19. The method of claim 18, wherein the resulting percentage shift amounts, measured with respect to the tolerance of each model parameter's tolerance among M model parameters, are different from one another, and the resulting percentage shift amounts are the same if the relative sensitivities are the same. 